package com.piao.springboot_task.service;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Springboot任务——定时任务
 */
@Service
public class ScheduledService {

    /**
     * Scheduled注解中cron = ""指定cron表达式
     * cron表达式中的六个值依次为：
     * 几秒 几分 几时 几日 几月 周几 (用空格隔开)
     * 范围分别为：
     * 0-59 0-59 0-23 1-31 1-12 0-7(0和7都是周日)
     * 例子：0 * * * * MON-SUN 整秒执行如 2020/2/28 17:45:00
     */

    //*代表任意
    @Scheduled(cron = "0 * * * * *")
    public void testScheduled() {
        Date t = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //System.out.println("整秒执行"+df.format(t));
    }
    //整秒执行2020-02-28 16:46:00
    //整秒执行2020-02-28 16:47:00
    //整秒执行2020-02-28 16:48:00
    //整秒执行2020-02-28 16:49:00

    // /代表步长 0/5每隔5秒执行
    @Scheduled(cron = "0/5 * * * * *")
    public void testScheduled2() {
        Date t = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //System.out.println("测试步长符号/ 每5s执行"+df.format(t));
    }
    //测试步长符号/ 每5s执行2020-02-28 16:50:10
    //测试步长符号/ 每5s执行2020-02-28 16:50:15
    //测试步长符号/ 每5s执行2020-02-28 16:50:20
    //测试步长符号/ 每5s执行2020-02-28 16:50:25

    // - 代表区间 ,代表枚举 10-15,20-25表示10-15s执行且20-25s执行
    @Scheduled(cron = "10-15,20-25 * * * * *")
    public void testScheduled3() {
        Date t = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //System.out.println("测试区间符号-和枚举符号, 10-15s执行且20-25s执行"+df.format(t));
    }
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:10
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:11
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:12
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:13
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:14
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:15
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:20
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:21
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:22
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:23
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:24
    //测试区间符号-和枚举符号, 10-15s执行且20-25s执行2020-02-28 16:53:25


}
